package com.softer.chengxin.score.service;

import com.softer.chengxin.common.domin.Common;
import com.softer.chengxin.common.domin.CommonResult;
import com.softer.chengxin.common.domin.ManagerPageResult;
import com.softer.chengxin.common.domin.Page;
import com.softer.chengxin.corp.dao.ManagerDao;
import com.softer.chengxin.score.entity.ScoreDetailVO;
import org.apache.ibatis.annotations.Param;

import java.util.Date;

/**
 * @author wangixnrui
 * @date 2018/10/12
 */
public interface SDManagerService {

    /**
     * 查询企业信用年度评价列表
     * @param loginName 登录名
     * @param qyName 企业名
     * @param dj 等级
     * @param year 年度
     * @param page 页码
     * @return 结果
     */
    ManagerPageResult findByCondition(String loginName, String qyName, String dj, String year, Page page);

    /**
     * 获取优良负面信息列表
     * @param loginName 登录名
     * @param infoType 信息种类
     * @param qyName 企业名
     * @param proName 项目名
     * @param state 状态
     * @param page 页码
     * @return 结果
     */
    ManagerPageResult getScoreDetailList(String loginName,Integer infoType,String qyName,String proName,String state,Page page);

    /**
     * 获取sp列表
     * @param loginName 登录名
     * @param infoType 信息种类
     * @param qyName 企业名
     * @param proName 项目名
     * @param page 页码
     * @return 结果
     */
    ManagerPageResult getSPList(String loginName,Integer infoType,String qyName,String proName,Page page);

    /**
     * 删除负面/优良信息
     * @param loginName 登录名（判断账号级别）
     * @param id 信息id
     * @return 结果
     */
    CommonResult delete(String loginName,Integer id);

    /**
     * 获取负面/优良信息 录入界面 的信息列表
     * @param loginName 登录名
     * @param qyName 企业名
     * @param proName 项目名
     * @param infoType 信息种类
     * @param page 页码
     * @return 结果
     */
    ManagerPageResult getScoreAddList(String loginName,String qyName,String proName,Integer infoType,Page page );

    /**
     * 新增 保存 信息
     * @param scoreDetailVO 实体
     * @return 结果
     */
    CommonResult addScore(ScoreDetailVO scoreDetailVO,String loginName);

    /**
     * 新增  保存并公示  信息
     * @param scoreDetailVO 参数
     * @param loginName 登录名
     * @return 结果
     */
    CommonResult addAndPublicity(ScoreDetailVO scoreDetailVO,String loginName);

    /**
     * 公示
     * @param loginName 登录名
     * @param id id
     * @return 结果
     */
    CommonResult publicity(String loginName,Integer id);

    /**
     * 修改 保存 信息
     * @param scoreDetailVO 实体
     * @return 结果
     */
    CommonResult update(ScoreDetailVO scoreDetailVO,String loginName);

    /**
     * 删除保存的信息
     * @param id 信息id
     * @return 结果
     */
    CommonResult delete(Integer id);

    /**
     * 审批优良/负面信息
     * @param loginName 登录名
     * @param id 信息id
     * @param corpId 企业id
     * @param scoreTypeId 得分类型id
     * @param score 得分
     * @param effectiveBeginTime 生效开始时间
     * @param effectiveEndTime 生效结束时间
     * @param remark 备注
     * @param state 状态
     * @return 结果
     */
    CommonResult sp(String loginName, Integer id,Integer corpId,Integer scoreTypeId, String score, String effectiveBeginTime, String effectiveEndTime, String remark, Integer state,String backType);

    /**
     * 变更优良/负面信息
     * @param scoreDetailVO 参数
     * @return 结果
     */
    CommonResult biangeng(ScoreDetailVO scoreDetailVO,String loginName,String backType);

    /**
     * 获取该企业 年度 的 得分详细（优良信息，负面信息，基本信息）
     * @param qyName 企业名
     * @param infoType 信息种类
     * @param effectiveBeginTime 公示开始时间
     * @param effectiveEndTime 公示结束时间
     * @param corpId 企业id
     * @param year 年度
     * @param loginName 登录名
     * @param page 页码
     * @return 结果集
     */
    ManagerPageResult getScoreDetailByYear(String loginName, String qyName, Integer infoType, String effectiveBeginTime, String effectiveEndTime, Integer corpId, String year, Page page);

    /**
     * 通过id获取得分详细信息
     * @param id id
* @return 结果
     */
    ScoreDetailVO getDetailScore(Integer id);

    /**
     * 获取变更信息列表
     * @param page 页码
     * @param qyName 企业名
     * @param proName 项目名
     * @param infoType 信息种类
     * @param loginName 登录名
     * @return 结果
     */
    ManagerPageResult getBianGengList(String loginName,Page page, String qyName, String proName, Integer infoType);

}
